Actually, the term "American" is used quite correctly. You may be thinking it's not sufficiently differentiated from North American or South American, but those terms are used when referring to people by their continent (e.g. European, Asian, etc.) When referring to people by their country of origin, people from Canada are Canadian, people from Mexico are Mexican and people from the United States of America are... Unitian? no. Statsian? no. Ofian? no. American -- yes. There are many countries with "United" in their names; many with "States" in their names but how many with America in their name?
African-American is a colloquial term born out of the time in the 60's when we were searching as a country for a way to have a discussion about race without using inflammatory terms. It's not a clever or especially correct term, but it was the term we could use without starting a fight. We know it's stupid. The rest of the world doesn't have to use it.