thick waveform in oscope
You have noise on your signal, but we can't tell which of the many possible sources of noise are dominant.  The most likely is poor grounding the analog signal not treated properly on your digital board, but there are many others, including the input signal.  How do you know that signal doesn't really have that noise on it?

To eliminate the input signal, use two 1 k&Omega; resitors as a voltage divider to make half the supply voltage and then feed that into the A/D.  Put a 1 &micro;F or so ceramic cap right at the A/D input pin with the other end directly to the analog ground pin on the processor.  For good measure, add a 100 &micro;F or so electrolytic cap too.  That should give you a good clean signal at mid-range.  If that looks good, then something upstream of the A/D is making a mess or the source signal you are trying to measure is noisy.  If it is noisy with this test, then you are doing something wrong in firmware.

Keep in mind that &plusmn;1 count should be expected.