Auto Date based on Selection of Stage in Potential

Auto Date based on Selection of Stage in Potential

I have a requirement where when the Stage in potential reaches a certain string, a date should be captured. 

For example: Currently I have these stages 

Pre-Qualification
Estimation/Bid Preparation
Bid Submitted/Post Bid Clarification
Won
On Hold
Lost

When someone selects any of these stages:
Estimation/Bid Preparation
Bid Submitted/Post Bid Clarification
Won
On Hold
Lost

The date it was first flipped should be recorded. 

I am trying to create a custom formula field named 'Recorded Date' under potentials

Return type is string - this is the formula i am trying to use --- 

If(Contains(${Potentials.Stage},'Estimation/Bid Preparation'),Now(),If(Contains(${Potentials.Stage},'Bid Submitted/Post Bid Clarification'),Now(),If(Contains(${Potentials.Stage},'Won'),Now(),0)))

Can you help me out here? Doesnt work no matter what I try.