Try applying an eyeshadow primer under your eyeshadow! A few good ones are the Urban Decay Primer Potion, NARS Smudge Proof Eyeshadow Base, Too Faced Shadow Insurance, Benfit Stay Don't Stray, & MAC Prep+Prime Eye. Some brands even have long-wearing eyeshadows that also help! Check out MAC's Pro Longwear Collection & the Benefit Creaseless Cream Eyeshadows. I also like to apply my regular face powder on my lids to absorb excess oil.