Tony Horton does some wonderful, effective shoulder stretches in P90X and P90 Masters.
Dynamic stretches:
Pot stirrers: Lean forward, and let one arm swing from side to side, then around in circles, in both directions.
Circles: with arms out straight to the sides (in a "T") and fingers up, make small-to-medium-size circles, first forward for 20, then backward, then point fingers down and do the same thing, but bigger. The shoulders will burn from this.
Reach up to the sky, then squeeze your elbows down and back as you bring your chest out. Repeat several times. This really helped 'unhitch' my troublesome shoulder. When I first started doing these, I couldn't bring my right arm all the way down without doing a little circle on the way to make sure my shoulder didn't catch.
Stand upright: reach your arms forward and back as far as you can, hold for a beat, then reach them down and back (with palms facing towards ceiling) and hold for a beat. Repeat.
Held stretches:
Hold right arm across body at shoulder level and pull in with left arm. Then do tricep stretch for same side (right arm up, then bend behind head and pull back with left hand). Repeat on other side.
Clasp hands behind back and try to squeeze elbows together (they won't touch!). Then clasp hands in front and bring front shoulders towards each other.
Put arms behind back, bend right arm so that lower arm is parallel to floor and across back (like a 1/2 belt). Grasp right wrist with left hand and pull gently as you tilt your left ear to the left shoulder, keeping both shoulders down. Repeat on other side.
Try these, and I think you'll find you have better shoulder mobility and less soreness.