Off the top of my head, you could achieve it by creating a child theme with a custom footer.
Remove the following line from every adsense unit on your site:
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
Then, for example, if the ID of the page where you
do not want adsense to appear is 15, you would place the following code in your child theme's footer.php:
<?php
$currentpageid = get_the_ID();
If ($currentpageid != 15) {
echo "<script async src=\"//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js\"></script>";
}
?>
As long as you have removed the pagead2.googlesyndication.com/pagead/js/adsbygoogle.js from each ad unit, then ads can only appear on pages that have it in the footer.
That's off the top of my head, so there may be bugs/issues!