Arduino - Turn on LED when Potentionmeter is used
When the function blinkLED() is triggered, there is this delay,.. does the whole loop()-function wait, too? 


Yes, when you call a function it doesn't return until it is done, and delay is blocking.

You can rewrite a bit like this:

int ledPin = 13;

int pin[] =             {A0, A1, A2, A3};
int cc[] =              {20, 21, 22, 23};
int potiValues[] =      {0,  0, 0, 0};
int potiValuesTmp[] =   {0, 0, 0, 0};

void setup() {
    Serial.begin(9600);
    pinMode(ledPin, OUTPUT);
}

unsigned long lastFlash;
int flashesToGo;
const unsigned long flashTime = 50; // ms

void loop() { 
    // READ EVERY PIN
    for(int i=0; i&lt;=3; i++){
        potiValues[i] = map(analogRead(pin[i]), 0, 1023, 0, 127);
        if(abs (potiValues[i] - potiValuesTmp[i]) &gt; 3) {
            // NEW VALUE RECEIVED - MAKE OUTPUT
            Serial.print("Pin ");
            Serial.print(pin[i]);
            Serial.print(" - ");
            Serial.print("Value: ");
            Serial.println(potiValues[i]);         
            flashesToGo = 10;          
            potiValuesTmp[i] = potiValues[i];
        } 
    }  

   // flash LED if required

   if (flashesToGo &gt; 0)   // need more flashing?
      {
      // is it time to toggle the LED?
      if (millis () - lastFlash &gt;= flashTime)
        {
        // toggle LED
        if (digitalRead (ledPin) == HIGH)
          digitalWrite (ledPin, LOW);
        else
          digitalWrite (ledPin, HIGH);
        // remember when we did it
        lastFlash = millis ();
        // count down
        flashesToGo--;  // one less flash
        } // end of time for another flash
      }
   else
     digitalWrite (ledPin, LOW);  // ensure LED off

}


What this does is add to the main loop a few lines of code that toggle the LED after a certain time is up (50 ms currently). It counts down the number of toggles from a desired starting point (eg. 10) until they are all done. This means that the LED will flash without blocking.

Each time you detect a new analog reading the number of flashes is reset back to the maximum.



I modified your test for if the analog reading changed to be:

if(abs (potiValues[i] - potiValuesTmp[i]) &gt; 3)


I found that without that, the LED flashed continually because the readings were slightly different each time (eg. 51, 52, 51, 50) which would probably just be error in the ADC reading.

With that change, it doesn't count as "changed" unless the reading changes by 3 (you could make it more, or less than that).




  I want the LED to blink up just once - when I turn one of the potentiometers


In that case change:

flashesToGo = 10;


to:

flashesToGo = 2;


That is one HIGH and one LOW (one flash in total).