Quick answer
ponerse + adjective = a sudden, temporary change, usually of mood, colour or health.
volverse + adjective = a lasting change that nobody chose, often of character.
Two more belong to the same family: hacerse for a change you work towards (hacerse médico, hacerse rico), and quedarse for the state you are left in after losing something (quedarse ciego, quedarse solo).
Side by side
Memory trick
Ask two questions: does it pass, and did anyone choose it? Passing mood is ponerse, lasting and unchosen is volverse, worked for is hacerse, left over after a loss is quedarse.
Typical mistakes
Me volví nervioso antes de la entrevista.
Me puse nervioso antes de la entrevista.
Nerves before an interview pass within the hour, so Spanish uses ponerse. <i>Volverse nervioso</i> would describe a permanent change of temperament.
Se puso millonario con su empresa.
Se hizo millonario con su empresa.
He worked towards it over years, so the verb is hacerse. Ponerse only works for short-lived states.
Check yourself
Fill in: "Cuando oyó la noticia, ___ pálido."