I'll second what @Ryan said (lots of ryans up in here). A vertical gradient is often the best way to quickly add dimension and lighting to your sprites. With noise-based particle textures, you don't necessarily need to rotate them to get variation between the particles, so a simple gradient may be sufficient.
For more detailed stuff, I'd look at how clouds are lit relative to the sun. When clouds are between the sun and the viewer, the thin areas of the cloud are bright due to single-scattering and the thick areas are dark due to self-shadowing. When you are looking away from the sun at a cloud, the edges are darkened and the center is bright for much the same reasons. Try recreating this effect in your material You can get the dot product of the light vector and camera vector to know if the camera is looking toward the light source and lerp between the different shading behaviors.
Combine this with either some soft normalmap data or with just vertical gradients, and you can get a lot of extra detail in your smoke!