As far as I know, the proper way is what you already described: make a Player Controller that in turn controls an AI Controller.If you are making an RTS type game, this approach makes total sense. It allows a single “player” to control different characters. If you want RTS or 3rd person RPG like controls (click to move) this seems to be the best approach.
As for the accuracy issue, I believe the AI Controller has parameters to determine how close the character has to get to the target point before it stops. If you set this distance really low, you could the snap the character to the exact location using “Set Actor Location” once the character is close enough for it not the make any visual difference. This would let you put the character as close as possible to 10, 0, 0.