Para ello, y siguiendo la formula de usar los botones de los mutes como selector (puedes visitar la explicación sobre el muteado de los pasos aquí), si pulsas un botón de mute antes de mover el potenciómetro, este actuará cambiando el parámetro de la velocity del mensaje midi:

  for (int i = 0; i < NUM_POTES; i++) {
    int val = analogRead(potesPin[i]);

    if(abs(val - potSaveValue[i]) <= 20) continue; // Hasta que no lleguemos al valor guardado, no cambiará nada para evitar saltos
    if(muteActivado){
      if(s->seqMode == 0){ // Secuencia en modo notas
				int velMapping = constrain(map(val, MAX_POTE_VALUE, MIN_POTE_VALUE, 0, 127), 0, 127);
        if(poteBlocked[i]){ // si el valor del pote y el guardado coinciden, el pote puede empezar a guardar datos
          if (abs(velMapping - stp[i].velocity) <= 5) poteBlocked[i] = false;
          else continue;
        }
        stp[i].velocity = velMapping;
        aplicarCambiosPotes(stp[i].velocity, i);
        poteMovidoMutes = true;
        potSaveValue[i] = val;

Luego, ese número que pasa a estar dentro del array velocityValue, lo leemos cuando vayamos a enviar la nota cambiando el índice por el número del step en el que nos encontremos:

MIDI.sendNoteOn(stp[nStep].note + (12 * stp[nStep].octave) + notaExterna, stp[nStep].velocity, id + 1);