There are two ways to do this (which can be combined):
- Look at current performance. A guy who is batting .200 in AA is not ready to move up to AAA.
- Go by the AI by either delegating promotions/demotions or looking at the recommendations on the Minor League Report.
I also recommend monitoring the minor leagues and releasing the deadwood from time to time. If you see a 28-year-old still in Single-A, chances are he's not going to blossom into a major league player. This is true even if he retains decent potential ratings. If you look closer, many times you see that such a player has low intelligence or work ethic.
EDIT: I forgot your other question. Did the AI change the player's position when he moved up? Because, by default, the game rates players according to how they stack up against other players at the same position. Read more about it here:
http://manuals.ootpdevelopments.com/...overall_rating