It's a scheme where each increment in value changes only one bit of a word. For example, with regular binary code: 7+1=8. 7 is b0111, 8 is b1000. That's four bits changed.

This can be a problem in many cases such as simple rotary encoders, where several physical tracks are used to encode a parallel output. A transition that changes many bits can not be reliably implemented, as one track will always loose or achieve contact with it's wiper before others, leading to transient glitches in the output of completely incorrect values. Gray code will limit the possible error to just one value up/down as any glitches will only affect the one bit and can easily be filtered out if desired.

There are many other applications of minimum change codes. Google and wikipedia is your friend here.