Always record yourself.
Felt the same way for ages, then I made a point of recording every time I had a mix, and made sure that whenever I did have a mix I'd play at least an hour.
There's a big difference between how you feel a set went and how a crowd woudl feel about it. The only way you can hear what the crowd would hear is to record it and listen back. You pick up loads of things you wouldn't ordinarily realise as well - that the FX and scratching you thought you were blazing away on sounds a bit self indulgant and shite, and that mixes you thought were quick and shoddy were actually quite tight and dynamic.
You said yourself your mixes sound better when you listen back to them - get used to your recordings being the judge of whether your had a good session or not, instead of how you felt about it. It'll be the same when you play out, sometimes you have to put on a good show even though you might feel like shite or you feel out of it but if you have enough confidence in knowing your end product sounds good so long as you do x, y & z you'll get better.
You just sound like you don't have confidence at the mo'
Keep practicising mate, no substitute for knowing your tunes, and knowing what you sound like to other people when you play. Press record!