MIDI CC messages: how to read?

This approach is vulnerable to framing errors.
Try the following:

void setup() {
  Serial.begin(31250);
}

void loop() {
  static uint8_t header = 0;
  static uint8_t data1 = 0;
  static bool third_byte = false;

  if (Serial.available() >= 1) {
    uint8_t data = Serial.read();
    if (data & 0b10000000) { // if msb == 1 (header byte)
      header = data;
      third_byte = false;
    } else if ((header & 0xF0) == 0xB0) {
      if (!third_byte) {
        data1 = data;
        third_byte = true;
      } else {
        third_byte = false;
        uint8_t data2 = data;
        uint8_t channel = header & 0x0F;
        handleCC(channel, data1, data2);
      }
    }
  }
}

void handleCC(uint8_t channel, uint8_t data1, uint8_t data2) {
  // Serial.printf("Control Change event on channel %d: controller number 0x%02X, value 0x%02X\r\n", channel + 1, data1, data2);
}

Pieter