Snorlax has an amazing HP stat, and very good Special Defense. His Defense is very low though, but that can be remedied by investing fully in Defense, and he will be an amazing tank.
Snorlax also has a good Attack stat, which means he is able to deal decent damage as well.
He lacks a reliable recovery move though, which means he will have to do with Rest. Other than that, some good moves can be Toxic, Return, Sleep Talk etc.
Miltank has good HP, good Defense and decent Special Defense, so will make a good tank if you invest fully in Special Defense, or even just some EVs.
Unlike Snorlax, Miltank has a reliable recovery move in the form of Milkdrink.
Another good point is Heal Bell, this move can be extremely useful for healing annoying burns and other status ailments. If you are going to use Miltank, you have to have this move. Although Miktank doesn't have as good Attack as Snorlax, it is still okay, and can deal some damage. Some good moves for Miltank would be Toxic/Thunder Wave, Attract(Curse Whitney), Dizzy Punch or Seismic Toss. Miltank also has a good Speed stat, which can allow it to outsped some Pokémon and heal the team and other things.
The choice is really up to you, but they play slightly different roles. Miltank is more of a support, while Snorlax can stall and maybe take out some Pokémon with its coverage moves, and it depends on which fits your team better.
Another point to think about is the fact that Snorlax is UU and Miltank NU, but tiers are based on usage so it doesn't completely rule out Miktank as an option, although there are better support Pokémon out there, but it depends on what tier.
Sorry for not giving a solid answer, but you can't really do that when comparing Pokémon, unless one does the other's job and more, completely outclasses it etc.
If you are willing to, I suggest trying out Snorlax as well, and see which Pokémon suits your style and team's needs.