They're often used interchangeably, and people will always know what you're talking about if you use either of the two. If you wanted to be technical, you could say they are different, though. Stall is simply stalling long enough to make your opponent run out of cards. A good example is Enrique Avila's Wailord deck that got 2nd place at US nationals in 2015. Mill decks are slightly different in that they actively discard (or, "mill,") the opponent's deck. For example, Sableye, recycling Trick Shovels over and over again.
Basically, Stall decks wait for you to run out of cards. Mill decks MAKE you run out of cards. Most modern decks that intend to deck the opponent out are mill based, since basically every single one plays Team Rocket's Handiwork.
In conversation, though, they basically function as synonyms, so feel free to use whichever term you want.
Stall decks focus on delaying your opponent's strategy in order to facilitate your own win... or just to troll. The reasoning behind the name is self-evident.
Mill decks focus on running you out of cards, either as a form of disruption, to achieve a victory by deck out, or a combination of the two. The name derives from a Magic: the Gathering named "Millstone", the first in that game to feature the mechanic of moving cards from one's library (deck) to another zone, usually the graveyard (discard pile). Before I finally accepted that "Mill" was going to remain the preferred term, I referred to these as "depletion" decks. There is overlap between the two turns but that's more a matter of what remotely recent Mill decks have succeeded, but the terms should not be confused.
We should probably address two more related (and oft-confused) terms. A Control deck controls what your opponent can play, while a Disruption Deck messes with your opponent's side of the board (hand, field, deck, sometimes even discard pile and/or Prizes!). You cannot fully separate the two; by its nature, a Control Deck will Disrupt what your opponent is playing, it is just that Control is at least one step beyond disruption. Any easy way to draw a distinction is to look at cards like Pokémon Catcher and Repel. Pokémon Catcher is "Control", because (with a "heads") it lets you choose exactly which of your opponent's in-play Pokémon are Active, while Repel only allows you to force your opponent to change their current Active.
I brought those two up because Control or Disruption Decks usually double as Stall decks, unless they can somehow Control/Disrupt while delivering a devastating offensive, such as Trapper decks waaaaaaaaaaaay back in the early days of the game. Such decks would use big, Basic Pokémon popular in strong beatdown decks (like Haymaker) and blend them with control/disruption to try and leave an opponent topdecking with little in play... and with their attackers able to score a few quick KO's for a win or overwhelming advantage. Sometimes these decks are also Mill decks: Wailord-EX Decks combines all of the above for its wins!