You have to talk to everyone at least once a day, they'll tell you if they're planning on leaving. I think they might actually ping you when they plan to tell you (get that shocked emote and run up to you)
Diva just moved in no joke 4 spaces in front of my mayor's house. Simon moved NO FUCKING JOKE 2 spaces left of town hall.
I seem to get the worst of luck whenever a new villager comes in. Frita built her house below mine then next to it was Wart Jr.'s house and now Pietro built his near the train station. I really don't like them appearance-wise. >>
There's a villager reset trick you can look up. If you think someone might move in you can start the game by picking "new game" (do not start the day with the mayor) and then once your character gets to the point that you can save freely turn off the game or something like that.
Or you can build cheap temporary public works projects in spots you don't want people to move.
I forgot to say what the villager reset trick does, when you start the new character, run around the whole town and see if a new villager came in. If they did and you like the spot and villager, save when you can.
If you don't, gotta do the reset. If no one moved in just turn off the game. I don't know the exact details of what to do if you don't like them.