What you're feeling is very common. The perceived level of skill of one's co-workers is highly correlated to job satisfaction for programmers. It's hard to find a good place, but they exist. If you don't think your co-workers are likely to change, find another job. If you're good, and live in an area with lots of IT, it won't be hard.