Do you have a separate snapshot schedule for each dataset? You can just set up a recursive schedule for the whole pool (or one of the parent datasets, for one). You can then exclude datasets, that don’t need snapshots (or need more rare snapshot).
Also, you should take a look at the tiered snapshots setup.