RSDoran's answer is absolutely correct but he did not explain the reason for using grey code. The answer is simple if you look at his examples. In the first instance (binary) you will see that as the code changes from 1 to 2 the encoder must turn off bit 0 and turn on bit 1. If bit 0 turns off slightly before bit 1 turns on then the output briefly becomes 0. If bit 1 turns on slightly before bit 0 turns off then it briefly becomes 3. With larger numbers these errors can become huge. Grey code only requires one bit to change for each increment so the errors are eliminated.
Andybr