I know there are 3 types of contact cards. Class A,B,C (5V,3.3V,1.8V)
I know we can get the voltage requirement of card from it's ATR.
What I don't understand is how do we need to decide how many volts we need to feed the card just before the card's Atr information is read?
No, the voltage class is not typically encoded in the ATR (even if nobody restricts to put it into the historical bytes), since if you are able to read the ATR you are obviously applying an acceptable voltage.
The process for a reader is, to apply the lowest voltage, and if the card does not react, try the next voltage. See this question on electrical engineering.