You've read a pot. You've driven a PWM output. Wiring them together — turn the knob, watch the LED brighten — is your first piece of control. The input drives the output. The chip is acting as a calibrated bridge between two physical quantities.
The ranges don't match — that's what map() is for
analogRead returns 0–1023 (10 bits). analogWrite expects 0–255 (8 bits). You can't pass one to the other directly. map(value, 0, 1023, 0, 255) rescales the input to the output range. Internally it's just (value - inLow) * (outHigh - outLow) / (inHigh - inLow) + outLow — but the helper saves you from the integer-overflow gotchas.
The full sketch is two lines: int v = analogRead(A0); analogWrite(LED, map(v, 0, 1023, 0, 255));. Drop it in loop() and the LED tracks the knob in real time.
This pattern scales
You've just built a "dimmer." Replace the LED with a fan and you have a fan speed controller. Replace the pot with a temperature sensor and a setpoint comparison, and you have a thermostat. The pattern is always the same: read input → transform → write output. Every embedded controller in your house works this way.