The word "Navajo" comes from a Pueblo language word for "fields beside a ravine," and was adopted by the Spanish to refer to the people who called themselves the Diné. "Navajo" isn't even from the same language group, since they speak an Athabascan dialect and the Pueblo language is from the Kiowa-Tanoan group.
The true name of the Navajo is Dine' it means "the people". Many Indian names are not what those people actually call or called themselves but have grown to accept the new monikers over time - especially if it was written in Treaties with the US Government.