Or get an alarm clock which has no snooze :)
Seriously, it helps. For years now, my alarm has been this simple function in my zshrc:
function alarm()
{
sleep $1 && mplayer /path/to/mp3 -loop 0
}
It's much harder to snooze this way (unlock screen, switch to terminal, exit mplayer, enter new duration).