Thanks for the comments. Most of the examples I found for encoders did indeed use interrupts however, none of the samples I found worked at all for this particular encoder. If I can find an example that works I will post it here.
I think the while { } loops are probably not such a good idea. When I get some free time, I think I will revise this version to use an interrupt. Shouldn't be too hard... and also a good exercise as I am really only getting started in programming micros.
Cheers, Lyndon