Tracking Contacts through a process

Tracking Contacts through a process

Hi there 
I am looking for a way to track the progress of contacts through a custom process. 

Example:
I am running a pilot program for software, and to bring contacts onto the pilot I need to walk them through several steps (or phases) before they can enter the pilot then additional steps post pilot etc...  I would like to set up the steps and be able to view which contacts are at which stage through the process in a single view (or report).

I thought "campaigns" may be the answer however I can't seem to see how I could make this work. 

Can anyone throw some light on this for me?

Cheers
Brad