У АЦП есть analog watchdog, который умеет выдавать запрос
прерывания. Задержка до запуска АЦП, преобразование, вход в
обработчик прерывания. Навскидку, за несколько микросекунд можно
успеть выключить. Но надёжнее таки аппаратно, через вход
TIM17_BKIN, сигналом от компаратора. Существуют также драйверы IGBT
и полевиков (искать with desaturation detection или with short
circuit protection) которые умеют обнаруживать слишком большой ток
через ключ и либо сами выключаются либо
вырабатывают сигнал об аварии. Вот только ADC не умеет запускаться от TIM17 (только от TIM1, TIM3, TIM15) и от TIM17 нет возможности управлять другим таймером как подчиненным.