Reading -5v to +5v DC Voltage accurately

I'm working on a module that requires the ability to read a DC voltage from between -5v to +5v accurately. It is used in an audio control app so I need to be pretty certain where "0v" is after it has been scaled and corrected in software. I know I need some sort of non-inverting op-amp level shifter involving a rail-to-rail component but I don't quite see how to pull it off. I have access to at least +/-12v on the board from an external supply. Ideally, the transfer would have a flattened out value band around where 0v input would be. Any help on this would be greatly appreciated. My thought had been to shift this to 0v - 10v and then amp it down to 0-5v but I'm unsure how to get a solid 5v reference. Would it be better to shift it to a lower voltage range so as not to risk overloading the inputs? Thanks!

If you have +/-12V, why not use an external A/D converter that can accept +/-5V and then do the shifting/scaling in software?

www.analog.com, all kinds of A/Ds to play with.