Garzelli snatches Giro stage win