Personally, I like using a session, as it is much easier.
Having said that, in an exam site I have used a number of hidden fields to keep track of which exam a user is taking, as a user could be taking more than one at a time, and I didn't want that duplicated in the session. So, as much as I love sessions, there are places where using hidden fileds makes sense.
I guess this is one of those questions where there are no right answers, and only wrong answers. Whatever your situation is, just try not to get a wrong answer.