This is a problem I have mentioned in other answers: there is no good term.
I generally use the term “American Indian” (or just “Indian” if it is already established that the subject is specifically American Indians) as what I consider the least objectionable term. That is a problem, since “Indian” can also mean someone from India (and in fact, that is more accurate).
I detest the term “Native American,” since by definition anyone born in the US is a “Native American,” including me. (And I am not going to open the can of worms about people from other countries in the Western Hemisphere also being “Americans” except to say that they have a valid point which is similar to the “Indian” issue.)
I will generally use the term “Indian” for brevity and/or clarity. For example, I recently answered a question on “Custer Last Stand.” I referred to the “Indians” for simplicity, without going into the fact that the “hostile” Indians were Cheyanne and at least two “flavors” of Sioux (and I think one other tribe, but I do not remember their name), nor to the fact that the US Army was there at the invitation of the Crow (whose land the Sioux and Cheyanne were trespassing on), who provided scouts for Custer. All of that was irrelevant to the point I was making.
I would love to have a term for the descendents of the pre-Columbian people in the Americas that everyone can agree on and is not cumbersome, confusing and/or inaccurate. But I am not holding my breath.