Analogwert Ausgabe mit 7-Segment Anzeige

in deinem Code wird die Funktion anzeige nie aufgerufen. Diese kann also gelöscht werden. int ansteuerung = map(analogWert, 543, 1023, 0, 40); habe ich auch entfernt, da es nicht verwendet wird. So wird der Code übersichtlicher.

byte segmente[10]={
                   B01111110,//0
                   B00110000,//1
                   B01101101,//2
                   B01111001,//3
                   B00110011,//4
                   B01011011,//5
                   B01011111,//6
                   B01110000,//7
                   B01111111,//8
                   B01111011};//9
                   
byte pinArray[] = {2,3,4,5,6,7,8};
byte einerStelle = 12, zehnerStelle = 13;
int analogPin = 0;
int analogWert = 0;

void setup (){
  for(int i=0; i<7; i++)
  pinMode(pinArray[i], OUTPUT);
  pinMode(einerStelle, OUTPUT);
  pinMode(zehnerStelle, OUTPUT);
}

void loop(){
  analogWert = analogRead(analogPin);
  ansteuerung(analogWert);
}  

void ansteuerung(int a){

  for(int j = 6; j >= 0; j--)
  digitalWrite(pinArray[6 -j], bitRead(segmente[a], j) ==1?LOW:HIGH);
  delay(1000);
}

Der Funktion ansteuerung übergibst du den analogWert. In der Funktion ansteuerung verwendest du diesen Wert als index für das Byte Array segmente, das aus 10 Elementen besteht. AnalogWert kann aber bis zu 1023 betragen, du greifst so auf nicht definierten Speicher zu, darum auch nur der Schrott an der Ausgabe.