You cannot stop snapshot'ed data from moving into user space, but you can set up a snap autodelete policy to delete older snapshots when the space fills up. But you may need to figure out what is causing your snapshots to take up more space than you think. Either there is activity that is happening that is not planned (like a massive over-write or a mass delete), or your assumptions about how much space you need based on your retention and schedule need to be revisited.
You may want to have a read through TR-3483 (http://media.netapp.com/documents/tr-3483.pdf). Although this TR is focused on best practices around LUNs, it does provide a very good explanation around the various space management features included in ONTAP.