Насколько я понимаю, родная среда Arduino DMA не использует. Нужно искать сторонние библиотеки, в которых такая возможность есть.
Самый лучший способ полностью использовать все ресурсы контроллера - писать на чистом С.
У меня в программе используются два канала DMA.
Один из них используется для записи данных от АЦП в память, второй - для передачи массива данных по UART.
Таким образом, контроллер может одновременно захватывать данные с линейки (аппаратно), вычислять максимум для предыдущего измерения (программно) и передавать данные предыдущего оборота на компьютер (аппаратно).