Why do we need zero voltage reference circuit for micro-controller?
Thge way a triac firing angle controller works is to delay the firing time of the triac a controlled time (or angle, with a known duration of a mains cycle, time is related to angle) after the zero crossing of the mains cycle.

You need to know when to start timing. That's the time at which the mains voltage passes through zero volts. How do you know when it passes through zero?