What is the difference between "I have eaten" and "I have finished eating"?
The present perfect tense usually indicates that an action took place during a time interval that ends in the present (or sometimes continues past the present). Perhaps the action happened once at some unspecified time during that interval, perhaps the action happened many times, or perhaps the action spanned the full duration of the time interval. If the action spanned the whole interval, then usually the present perfect tense indicates completion.
I have finished eating.
emphasizes completion, so probably the speaker is saying it in order to tell you that the time interval ended just now. Usually a person would say "I have finished eating" while still sitting at the table for a meal, to imply that they don't want any more food. It means that the person's meal is now finished. The relevant time interval is: the total duration of the meal (for the person who just finished eating).
You would say this sentence:
I have eaten lunch.
if someone at work asks if you would like to go out to lunch with them but you already ate lunch a little earlier. For example, if someone asks you at 12:45 p.m., "Would you like to go out for a sandwich?", the implied time interval is the usual period when people eat lunch: from about 11:30 a.m. to about 1:30 p.m. By saying "I have eaten lunch", you indicate that you already ate lunch during today's time interval for eating lunch. (You would probably say "I ate lunch" if someone asks you at 3:30 p.m., long after the usual time interval for eating lunch.)