Margo had it right (as usual). I almost exclusively make wall quilts. I use an 80% cotton/20% poly batting, only one layer unless I particularly want the quilting to puff up. If I do, then I add a wool layer on top. Wool alone is not adequate for a wall quilt. I have tried other battings and they just don't seem to stay as straight.
I preshrink/prewash all my fabrics, which makes a difference too, especially if you live in a damp climate. And then I wash and block my quilt after it is quilted and before I put the binding on, square it up, and then apply the binding, which I have also pre-washed. Also, hanging it with a strip of wood or dowel all the way across in the rod pocket supports it so it doesn't sag.
Also, something that can affect it is if you cut your quilt with the straight of the grain. A little off one way or another can make it wave in time. This does not apply for applique, that can be cut off grain without affecting the way the quilt hangs, however.
A little trick you may want to try is something that drapery makers sometimes use...loosening the binding and hiding some small flat drapery weights or a chain across the lower edge, then sewing it back, could help fix an already completed, wavy quilt.
Cheers,
BJ