Пример, на который вы ссылаетесь, на самом деле не соединяет Arduino напрямую с шаговым двигателем. Это происходит через драйвер ULN2003A. Это очень распространенная транзисторная матрица Дарлингтона, которая позволяет просто использовать небольшой ток для переключения большей нагрузки.
Это необходимо, потому что контакты Arduino не могут безопасно генерировать достаточный ток для непосредственного управления шаговым двигателем. Это может работать некоторое время, но рано или поздно это повредит ваш Arduino.
Защитные экраны двигателя обычно имеют похожий драйвер, но могут также предоставлять дополнительную функциональность, которая может оказаться полезной. Например, щит Adafruit, к которому вы подключены, управляется шиной I2C и имеет собственный встроенный ШИМ. Это означает, что вы можете управлять несколькими двигателями без дополнительных выводов на Arduino.
Короче говоря, моторные щитки не нужны. Однако они могут быть полезны, особенно если вы не знакомы с базовой электроникой или не хотите создавать ее самостоятельно.