Photo resistor is giving off an unsteady output, how can I fix that?
As noted in the comments, many factors can affect the level of the signal you're getting - minute changes in reflected light levels in the room, vibration of the photocell, thermal effects, electrical noise, etc.

You probably want to filter the input in software. I use a simple one-pole filter something like this; you can trade off response speed versus noise reduction easily. 

static int value = 0;
int raw = analogRead( A0 );
value = ((value * 15) + raw) / 16; // very smooth but slow to respond
//value = ((value * 3) + raw) / 4; // noisier but faster to respond


This says, on each pass through the loop, to weight the previous result by a large amount and the new reading by a small amount, which smooths out small changes in light levels. 

You also mentioned:


  Also, a 220 ohm resistor connects the photo resistor rail to the negative rail on the breadboard. Not sure why that is needed, but all tutorials specify this is a must.


Without the fixed resistor, the 5V going into the photoresistor has nowhere to go other than the analog input pin, so you'd read 5V regardless of the light level. The variable resistance of the PR combined with the fixed resistor forms a voltage divider which puts a variable voltage on the input.